home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Graphics Programming (2nd Edition) / Visual Basic Graphics Programming 2nd Edition.iso / Src / Ch12 / Viewport.frm (.txt) < prev    next >
Visual Basic Form  |  1999-06-16  |  2KB  |  77 lines

  1. VERSION 5.00
  2. Begin VB.Form frmViewport 
  3.    Caption         =   "Viewport"
  4.    ClientHeight    =   2910
  5.    ClientLeft      =   2550
  6.    ClientTop       =   1515
  7.    ClientWidth     =   2910
  8.    LinkTopic       =   "Form1"
  9.    PaletteMode     =   1  'UseZOrder
  10.    ScaleHeight     =   2910
  11.    ScaleWidth      =   2910
  12.    Begin VB.PictureBox picViewport 
  13.       Height          =   1815
  14.       Left            =   120
  15.       ScaleHeight     =   1755
  16.       ScaleWidth      =   1995
  17.       TabIndex        =   0
  18.       Top             =   120
  19.       Width           =   2055
  20.    End
  21. Attribute VB_Name = "frmViewport"
  22. Attribute VB_GlobalNameSpace = False
  23. Attribute VB_Creatable = False
  24. Attribute VB_PredeclaredId = True
  25. Attribute VB_Exposed = False
  26. Option Explicit
  27. ' Draw a smiley face in the viewport centered
  28. ' around the point (5, 5).
  29. Private Sub DrawSmiley(ByVal pic As PictureBox)
  30. Const PI = 3.14159265
  31.     ' Head.
  32.     pic.FillColor = vbYellow
  33.     pic.FillStyle = vbSolid
  34.     pic.Circle (5, 5), 4
  35.     ' Nose.
  36.     pic.FillColor = RGB(0, &HFF, &H80)
  37.     pic.Circle (5, 4.5), 1, , , , 1.5
  38.     ' Eye whites.
  39.     pic.FillColor = vbWhite
  40.     pic.Circle (3.5, 6), 0.75, , , , 1.25
  41.     pic.Circle (6.5, 6), 0.75, , , , 1.25
  42.     ' Pupils.
  43.     pic.FillColor = vbBlack
  44.     pic.Circle (3.7, 6), 0.5, , , , 1.25
  45.     pic.Circle (6.7, 6), 0.5, , , , 1.25
  46.     ' Smile.
  47.     pic.Circle (5, 5), 2.75, , 1.15 * PI, 1.8 * PI
  48. End Sub
  49. Private Sub Form_Load()
  50. Dim X As Single
  51. Dim Y As Single
  52. Dim border_wid As Single
  53. Dim border_hgt As Single
  54. Dim wid As Single
  55. Dim hgt As Single
  56.     ' Find the PictureBox's border sizes.
  57.     border_wid = picViewport.Width - picViewport.ScaleWidth
  58.     border_hgt = picViewport.Height - picViewport.ScaleHeight
  59.     wid = 2 * 1440 + border_wid
  60.     hgt = 2 * 1440 + border_hgt
  61.     ' Make the viewport 2 inches square.
  62.     X = picViewport.Left
  63.     Y = picViewport.Top
  64.     picViewport.Move X, Y, wid, hgt
  65.     ' Scale the world window.
  66.     picViewport.ScaleLeft = 0
  67.     picViewport.ScaleTop = 10
  68.     picViewport.ScaleWidth = (10 - 0)
  69.     picViewport.ScaleHeight = (0 - 10)
  70. End Sub
  71. Private Sub Form_Resize()
  72.     picViewport.Move 0, 0, ScaleWidth, ScaleHeight
  73. End Sub
  74. Private Sub picViewport_Paint()
  75.     DrawSmiley picViewport
  76. End Sub
  77.